The present invention relates to methods and apparatus for transferring data within a multi-processing system.
In recent years, there has been an insatiable desire for faster computer processing data throughputs because cutting-edge computer applications involve real-time, multimedia functionality. Graphics applications are among those that place the highest demands on a processing system because they require such vast numbers of data accesses, data computations, and data manipulations in relatively short periods of time to achieve desirable visual results. These applications require extremely fast processing speeds, such as many thousands of megabits of data per second. While some processing systems employ a single processor to achieve fast processing speeds, others are implemented utilizing multi-processor architectures. In multi-processor systems, a plurality of sub-processors can operate in parallel (or at least in concert) to achieve desired processing results.
In some processing systems a processor may employ a relatively small local memory in which to execute program code (as opposed to a larger random access memory, RAM). The larger RAM (main or system memory) may be used for bulk storage. The processor may also employ direct memory access (DMA) technology to transfer data from the main memory to the local memory. Data streaming may be employed to feed data (such as video data) from the main memory into the local memory for data manipulation. Application programs, however, cannot be fed into the local memory using data streaming techniques.